מודלים חישוביים סיכום כריעות טענה: לא כל הפונקציות חשיבות. מספר התוכניות הוא בן מניה. כל תוכנית מגדירה פונקציה מספרית אחת לכל היותר. לכן מספר האלגוריתמים הוא בן מניה בעוד שמספר הפונקציות המספריות אינו בן מניה. דוגמאות לתוכניות לא חשיבות =. } = N,, } =, } h= h h, } רדוקציה נאמר שיש רדוקציה מפונ' fלפונ' gונסמן אם באמצעות תכנית שמחשבת את gניתן לכתוב תכנית שמחשבת את f. אם קיימת רדוקציה מ- fל- gאז: אם fלא חשיבה, אז גם gלא חשיבה. אם gחשיבה, אז גם fחשיבה. בעיית ההכרעה נאמר ששפה היא כריעה \ שבעיית ההכרעה היא כריעה אמ"מ קיימת תכנית pשמקיימת: 1. אם אז = 2. אם אז = R זוהי מחלקת השפות הכריעות. מחלקה זו סגורה תחת פעולת המשלים. רדוקציית מיפוי נאמר שיש פונ' מיפוי משפה Aלשפה Bאם קיימת פונ' חשיבה fכך ש- אמ"מ. נסמן:. אז מתקיים: אםBהיא,RE אז כך גם A. אםAאינה,RE אז גםBאינה.RE אםAאינה,Co-RE אז גםBאינה.Co-RE. 1
בעיות סופיות כל בעיה עם מספר סופי של בדיקות היא כריעה. למשל: האם גיל קופטש יהיה חבר כנסת בכנסת ה- 19? משפט רייס בעיה סמנטית אם Pהיא השפה Lאינה כריעה לפי רייס אם: 1. Lהיא שפה של תוכניות (<, >אינה תוכנית!) 2. Lהיא בעיה לא טריויאלית 3. Lהיא בעיה סמנטית דוגמאות לבעיות לא כריעות לפי רייס: <> h } =<> h # } שקילות סמנטית אם Sשפה סמנטית אז אם, לא בהכרח נובע כי a,bשקולות סמנטית. מצד שני, אם a,bשקולות סמנטית, אז שניהן בהכרח באותה שפה סמנטית סוגי בעיות סמנטיות: = :type A = :type B משפט הרקורסיה לכל תוכנית :h hקיימת תוכנית cכך ש-. RE L: למחצה שפה מחלקת השפות שניתנות להכרעה למחצה, כלומר נאמר שתוכנית pמקבלת\מכריעה REהיא אם אז pמקבלת את.= x. אם אז pדוחה את xאו לא עוצרת..= בהכרח גורר ש- לא =, לכל בעיה שהיא או משלימתה ב- REניתן לעשות רדוקציית מיפוי מ- h (כל התוכניות שמתבדרות לכל קלט) לכל בעיה ב- REיש רדוקציית מיפוי ל- h (תוכניות ללא קלט שעוצרות) תכונות: קבוצה הסבר השפה לא כריעה כי אחרת ניתן לפתור איתה את.bb בנוסף ב- REכי ניתן להריץ את pעל xבקלטים ששייכים לשפה ולחכות שיעצרו. ניתן להראות כי היא ב- REבדומה לשפה הקודמת. כדי להראות שלא ב- coreמראים רדוקציה תאור pעוצרת על הקלט x pעוצרת על הקלט הריק שפות חשובות: קלט שפה <,> h <> h 2
התוכנית pעוצרת על מספר סופי של קלטים התוכנית pעוצרת על כל קלט התוכנית pדוחה כל קלט או מתבדרת מהשפה.halt לא ב- Rולא ב- REע"י רדוקציה מ- h מ- halt רדוקציה ומ- h לא ב- REלפי רדוקצייה מ- h ב. - coreכי ניתן לעבור על כל הקלטים עד שנתקלים בקלט שעליו התוכנית עוצרת., <> <> <> h STEPPER זו תוכנית המקבלת pתוכנית, xקלט לתוכנית, kמספר טבעי. תכונית זו מחזירה Tאם pעצר על הקלט xבלכל היותר kצעדים, מחזירה Fאחרת. תוכנית זו היא כמובן כריעה אנומרביליות שפה Lבעלת אנומרטור אם קיימת תוכנית :N שהיא על. טענה: לכל שפה כריעה למחצה קיים אנומרטור. טענה: לשפה קיים אנומרטור מונוטוני אמ"מ היא כריעה. טענה: לכל שפה כריעה למחצה אינסופית קיימת תת שפה אינסופית כריעה. (ניתן ליצור אנומרטור מונוטוני) סיכום שיטות הוכחה בעיה Lהיא כריעה אם: מציגים אלגוריתם הפותר את הבעיה הבעיה היא סופית מראים רדוקציה לבעיה כריעה אחרת הבעיה והמשלים שלה כריעים למחצה מראים אנומרטור מונוטוני לשפה כדי להוכיח שבעיהLאינה כריעה ניתן להשתמש ב: בשיטת הליכסון, למשל במקרה ה- BBהראנו כי הבעיה סותרת את עצמה רדוקציה (לאו דווקא מיפוי) מבעיה לא כריעה אחרת משפט RICE הצגת הוכחה הדומה להוכחת משפט RICE בעיה Lכריעה למחצה אם: מציגים אלגוריתם המכריעה למחצה את השפה מציגים רדוקציית מיפוי לבעיה כריעה למחצה אם קיים אנומרטור לשפה המשלים של Lאינה כריעה למחצה אם: משתמשים בשיטת הליכסון רדוקציית מיפוי מבעיה לא כריעה למחצה 3
מראים ש- תובנות ממבחנים אם ידוע כי והיא סמנטית, אזי היא טריויאלית (לפי רייס) אומנם קיימת מכונה שמכריעה את Σולכן היא ב- R, אך נשים לב שלא ניתן לייצר למכונה הזו קלט שלא בשפה. באופן סימטרי עבור השפה לא ניתן לייצר קלט שמתקבל בשפה. אם קיימת שפה Lכך שמתקיים אזLהיא בהכרח לא השפה המלאה. באותו אופן אם Σאז Lבהכרח לא השפה הריקה. שפת כל המכונות שעוצרות שלמה ב- RE מודלים חישוביים היסטוריה חישובית חוקית - סדרת קונפיגורציות סופית: (,0,,0,1 N} התחלה (במכונת מונים זה קונפ'.1.2 הוא, מעבר חוקי. 3. הוא קונפ' סיום. x. היסטוריה חישובית חוקית של ריצת pעל cהיא תכנית שמחזירה Tאמ"מ : Checker(p,x,c) מכונת מונים מכונת מונים עם kרגיסטרים: =,.,, =0,h 1, }.,, סידרה סופית של הוראות :,, :R סדרת רגיסטרים לא חסומים. קונפיגורציה: במכונת מונים }.,,, N, בהנתן קונפיגורציה ומכונת מונים ניתן להמשיך את החישוב. תכונות: מכונת מונים עם 2 מונים לא יכולה לחשב כל דבר, למשל את הפונ':. ניתן לסמלץ מכונה עם 4 מונים ע"י מכונה עם 2 מונים: מונה אחד ישמור מספר מהצורה 2 אשר 3 5 7 ייצג את מצבי ארבעת המונים במכונה הראשונה. אם קיימת מכונת מונים עם 3 מונים המחשבת ( f(nאז קיימת מכונת מונים עם 2 מונים המחשבת כל מה שניתן לעשות עם מכונת nמונים, ניתן לעשות עם מכונת 3 מונים. בעיית העצירה במכונת מונים עם מונה אחד אינה כריעה. איך בודקים שמכונת מונים עם 2 סרטים מאפסת את אחד המונים במהלך הריצה על קלט ספציפי? מריצים את המכונה mפעמים (מספר שורות הקוד) בהכרח אחד מהמצבים יחזור על עצמו (עקרון דיר החזירים). לכן אם נריץ את המכונה mפעמים * מספר האיברים ברגיסטר המקסימלי בתחילת הריצה, אם לא נגיע ל- 0, לעולם לא נגיע..2 =,,,,,, מכונת טיורינג 4
תוכן הסרטן Q: קב' סופית של מצבים א: "ב של שפה (רווח לא שייך לא"ב) א: "ב סרט סופי, ) הפעם רווח שייך ל-א"ב) : מצב התחלה : קבוצת מצבים מקבלים : קבוצת מצבי דחייה : פונקציית המעבר מספר הקונפיגורציות במכונת טיורינג המשתמשת ב- Nתאים: מצב מיקום המכונה הראש כל הגרסאות הבאות שקולות למכונת טורינג רגילה: התחלת הסרט מסומנת ניתן להשאר במקום אחרי כתיבה מותר לכתוב פעם אחת בלבד על הסרט מספר סרטים סרט דו כיווני גרסה לא דטרמיניסטית סיבוכיות במכונות טורינג שונות: אם מכונת טורינג עם מספר סרטים מכריעה בעיה Lבזמן אז קיימת מכונת טורינג עם סרט יחיד המכריעה את הבעיה בזמן. שקילות מודלים ניתן להראות כי המודלים הבאים שקולים: מכונת טורינג מכונת מונים עם 2 מונים RAM Scheme מקרים בהם בעיית העצירה כריעה אורך התוכנית והקלט מוגבלים קיים חסם למספר הצעדים שעושה תוכנית שעוצרת. יש חסם על מספר הקונפיגורציות סיבוכיות זמן הגדרה: עבור פונ' :N Nנגדיר את בתור אוסף הבעיות שניתן להכריע בזמן, כאשר nהוא אורך הקלט. = = היררכיית זמן: 5
= המחלקה P המחלקה NP NP בעיות שקלות לוידוא הגדרה שפה Lהיא ב- NPאם קיים פולינום :N Nומ"ט שרצה על בזמן פולינומיאלי (באורך הקלט) כך שלכל x:..,= עדות עבור מוודא = 2 ש-. fכך טענה: רדוקציית מיפוי פולינומיאלית נסמן אם קיימת פונ' חשיבה ופול' טענה: תהי, אזי:אם אז אם אז = `,` } = & } NP-Hard NP-Complete טענה: אם, ו- אז אם אז, דוגמאות לבעיות בעיות ב- P : בדיקת ראשוניות של מספר פסוקית מהצורה :2SAT מסלול אוילר בעיות ב- NP : 3SAT SAT Graph Colorability Independent Set 6
בעיות ב- conpו- NP : :factoring מקבלים שני מספרים וצריך לומר האם יש לשניהם מחלק משותף. בעיות ב- NPC : 3SAT,SAT Hamilton Path Clique -IS קיימת קבוצת קודקודים בגודל kבגרף Gכך שאין קשת המחברת בין 2 מהקודקודים הללו {האם ב- Gקיים VCבגודל =<,> k t. בהינתן קבוצה של מספרים, האם קיימת תת קבוצה שסכום איבריה הוא,Subset Sum בעיות ב- NPHardוגם ב- conphard :( ) =<,> h } Halt תאור הקבוצות: CNP NP NPHard P NPC בעיות ב- NPC (החצים מציינים רדוקציות מיפוי פול') SAT, 3SAT Clique VC IS Hamilton Path 7
סיבוכיות מקום מודל לחישוב סיבוכיות מקום סרט הקלט קריאה. ראש נע לשני הצדדים. סרט עבודה קריאה וכתיבה. ראש נע לשני הצדדים. סרט פלט כתיבה. נע רק ימינה. חישוב המקום הוא ע"פ כמות המקום בו השתמשנו בסרט העבודה. סרט הקלט מצב נוכחי מיקום הראש בעבודה מיקום הראש בקלט סרט העבודה PSpace עבור פונ' :N N, נאמר ש- היא אוסף השפות המוכרעות במקום. נגדיר = בעיות ב- PSPACE : QSAT בעיית העצירה של מכונת טיורינג עם מקום מוגבל היא כריעה, מאחר ודרוש מקום פול' על מנת לבדוק האם יש קונפיגורציה של המכונה החוזרת על עצמה. שפות רגולריות \ אוטומטים טענות: או כריעה. כל שפה סופית היא רגולרית =כריעה. אוטומט סופי דטרמיניסטי - DFA =,,,, תת קבוצה של מצבים מקבלים מצב התחלה פונקציית מעבר א"ב קלט וסופי קבוצת מצבים סופית : חישוב מתחילים במצב.1 בכל צעד נקרא אות מהקלט ונשתמש ב- לקביעת המצב הבא.. 2 נקבל את wאמ"מ בסיום הריצה על הקלט נהיה ב-. 3. הבדלים ממכונת טורינג אין ראש שנע שמאלה וימינה על הקלט. 1. אין כתיבה. 2. אין מצבי עצירה. 3. 8
נגדיר } = אוטומט סופי לא דטרמיניסטי NFA =,,,, תת קבוצה של מצבים מקבלים מצב התחלה פונקציית מעבר א"ב קלט וסופי קבוצת מצבים סופית : } חישוב מקבל ~ ~ ~ ~. `,, ` וקבוצת מצבים = רצף }, `=.1 ~,. 2 `.3 נגדיר שאוטומטNמקבל מילה wאם קיים חישוב מקבל עבור wב- N. משפט: מחלקת השפות המתקבלות ע"י NFAו- DFAזהות - השפות הרגולריות. הפיכת NFA ל- DFA : אוטומט לא דטרמיניסטי: =,,,, אוטומט דטרמיניסטי השקול ל- N :.=`,,`,`,` מצב לכל קבוצת מצבים ב- Q. ב- Mיהיה :`= `= } { :`= ` ` מצב מקבל ב- Mהוא קבוצת מצבים (מצב יחיד ב- M ) המכיל מצב מקבל מ- N. `,= :,} ` R: הינה. קבוצת מצבים של Qב- Nוגם מצב ב- M מ. -` נקבל קבוצה של מצבים מ- N (או מצב מ- M ) של כל המצבים (ב- N ) שניתן להגיע מהם דרך aממצב כלשהו השייך ל- R. כדי לטפל גם במעברי, לכל מצב Rב- Mמגדירים.= h 0 } עתה מחליפים את,ב-,. כלומר ההגדרה החדשה ל-` היא: `. `,= :, בנוסף נשנה את המצב ההתחלתי.`= { למת הניפוח (לשפות רגולריות) Lשפה רגולרית קיים קבוע pכך שלכל ו- ניתן לפרק את wל =באופן הבא: >0 0. סגירות שפות רגולריות לפעולות חיתוך איחוד שרשור משלים היפוך (reverse) Kleene Star h=,,, } 9
= } max= Σ, } Subset Equivalence בעיות כריעות בשפות רגולריות שייכות Emptiness Fullness מינימליזציה של אוטומט ראשית מוחקים מצבים לא נחוצים. שנית מגדירים שפת המשך של מצב = q, כל המילים שמתקבלות ממצב זה. נאחד מצבים עם שפות המשך שוות. ביטוי רגולרי לכל ביטוי רגולרי ניתן לבנות אוטומט סופי. גם ההפך נכון. דוגמה משמעות ביטוי רגולרי + } } איחוד קבוצות + =,,,, } Kleene Star *,,,,, } + שרשור פעולת התרגום מאוטומט לביטוי רגולרי מתבצעת ע"י שימוש ב-,, - שפת כל המיליםwשמתחילות במצב S. רק דרך המצבים שבקבוצה מסתיימות במצב rועוברות q, סיכום שיטות הוכחה רגורליריות: בניית NFA,DFA בניית ביטוי רגולרי שפה שמתקבלת משפות רגולריות ע"י פעולות משמרות רגולריות. אי רגולריות: סתירה ללמת הניפוח קבלת שפה לא רגולרית מפעולות משמרות רגולריות תובנות ממבחנים מעבר מ- DFAל- NFAנעשה בזמן פולינומיאלי. 10
=,,, שפות חסרות הקשר דקדוק חסר הקשר אוסף חוקים קבוצה סופית של טרמינלים קבוצה סופית של משתנים : גזירה: מתחילים במשתנה Sובכל שלב בוחרים משתנה כלשהו Aוכלל גזירה ומחליפים את A ב-. מסיימים כשאין יותר משתנים. שפה חסרת הקשר: {ניתן ב- Gלגזור אתwמ- = S. למת הניפוח (לשפות חסרות הקשר) תהי Lשפה חסרת הקשר. אזי קיים קבוע >0 כך שלכל מילה בשפה, מתקיימת חלוקה =כך ש: 0.1.2.3 לכל Nמתקיים. הערה: יש שפות לא חסרות הקשר שלא ניתן להוכיח כי הן אכן לא חסרות הקשר ע"י למת הניפוח. כדי להראות שלמת הניפוח לא מקריסה ח"ה מראים שלכל מילה בשפה w (ארוכה מספיק) ניתן למצוא חלוקה שתקיים את למת הניפוח. פעולות השומרות על סגירות של שפות ח"ה הצבה חסרת הקשר לוקחים שפה קיימת Reverse ומחליפים כל טרמינל בה לסימן התחלה של חיתוך עם שפה רגולרית דקדוק ח"ה אחר. איחוד Kleene Star שרשור =. } דקדוק חסר הקשר לינארי זהו דקדוק שבו כלל גזירה הוא מהצורה או כאשר,,., דקדוק חסר הקשר הוא לינארי ימני אם כל כלל גזירה הוא מהצורה או או כאשר.,, טענה: משפחת השפות הנוצרות על ידי דקדוקים לינאריים ימניים היא משפחת השפות הרגולריות. צורת חומסקי לדקדוק חסר הקשר בצורת חומסקי, כל כלל גזירה הוא מהצורה הבאה בלבד: כלומר כל משתנה הופך לטרמינל או לשרשור שני משתנים. טענה: כל דקדוק חסר הקשר ניתן להפוך לצורת חומסקי. זה נעשה באופן הבא: 11
הוספת מצב התחלה חדש נפטרים מכל כללי הגזירה מהצורה נפטרים מכל כללי הגזירה של משתנה ההופך למשתנה אחר. למשל. מוסיפים כללי גזירה כך שהדקדוק החדש יצור אותה שפה כמו המקור. כלל גזירה היוצר מחרוזת הופך לרצף של כללי גזירה, למשל:, בעיות הכרעה בדקדוקים חסרי הקשר שייכות, כריעה קבוצה ריקה, = - כריעה קבוצה מלאה, -=Σ לא כריעה שיטות הוכחה לח"ה שפה חסרת הקשר: מראים דקדוק ח"ה לשפה השפה היא רגולרית השפה מתקבלת מהפעלת פעולות השומרות ח"ה על שפות ח"ה שפה אינה חסרת הקשר: לא מתקיימת למת הניפוח אם מפעולות שומרות ח"ה ניתן לקבל שפה שהיא לא חסרת הקשר הערה חשובה לא קיים דקדקוד חסר הקשר המייצר את כל החישובים של מכונה מסויימת. אך המשלים לכל המחרוזות שמייצגות חישוב הוא חסר הקשר. תובנות ממבחנים ניתן לבדוק כי דקדוק כלשהו הוא סופי. ידוע כי קיים דקדוק חסר הקשר ל- Σ, אין צורך להראות בניה שלו במידה ורוצים להשתמש בו. 12
תאור כל מחלקות השפות לפי סיבוכיות core R EXP RE PSpace conp P NP co- NPHard conpc CFL Reg NPC NPHard 13